home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr47 / alt_lan.zip / TCL.ASC < prev   
Text File  |  1995-02-02  |  3KB  |  209 lines

  1. _THE TCL PROGRAMMING LANGUAGE_
  2. by John K. Ousterhout
  3.  
  4.  
  5. Example 1: 
  6.  
  7.  
  8.  
  9. (a)
  10.  
  11. Enter:           expr 3 << 2
  12. Returned value:  12
  13.  
  14. (b)
  15.  
  16. Enter:           expr 14.1*6
  17. Returned value:  84.6
  18.  
  19. (c)
  20.  
  21. Enter:           expr (3 > 4) || (6 <= 7)
  22. Returned value:  1
  23.    
  24.  
  25.  
  26. Example 2: 
  27.  
  28. button .b -text "Hello, world!" -command exit
  29. pack .b
  30.  
  31.  
  32. Example 3: 
  33.  
  34. #!/usr/local/bin/wish -f
  35. button .b -text "Hello, world!" -command exit
  36. pack .b
  37.  
  38.  
  39. Example 4:
  40.  
  41. (a) 
  42.  
  43. -command "puts Good-bye!; exit" 
  44.  
  45.  
  46. (b)
  47.  
  48. destroy .b
  49. source hello
  50.  
  51.  
  52. Example 5: 
  53.  
  54. (a)
  55.  
  56. Enter:           set a 44
  57. Returned value:  44
  58. (b)
  59.  
  60. Enter:           expr $a*4
  61. Returned value:  176
  62.  
  63.  
  64. (c)
  65.  
  66. Enter:            set a 44
  67.                   set b [expr $a*4]
  68. Returned value:   176
  69.  
  70.  
  71. (d)
  72.  
  73. set x \$a
  74. set newline \n
  75.  
  76.  
  77. Example 6: 
  78.  
  79. (a)
  80.  
  81. proc power {base p} {
  82.    set result 1
  83.    while {$p0} {
  84.       set result [expr $result*$base]
  85.       set p [expr $p-1]
  86.    }
  87. return $result
  88.  
  89.  
  90. (b)
  91. Enter:            power 2 6
  92. Returned value:   64
  93.    
  94. Enter:           power 1.15 5
  95. Returned value:  2.01136
  96.  
  97.  
  98.  
  99. Example 6: 
  100.  
  101. (a)
  102.  
  103. proc power {base p} {
  104.    set result 1
  105.    while {$p0} {
  106.       set result [expr $result*$base]
  107.       set p [expr $p-1]
  108.    }
  109. return $result
  110.  
  111.  
  112. (b)
  113. Enter:            power 2 6
  114. Returned value:   64
  115.    
  116. Enter:           power 1.15 5
  117. Returned value:  2.01136
  118.  
  119.  
  120. Example 7: 
  121.  
  122.  
  123. (a)
  124.  
  125. while (p>0) {
  126.    result *= base;
  127.     p -= 1;
  128. }
  129.  
  130.  
  131. (b)
  132.  
  133. while {$p>0} {
  134.    set result [expr $result*$base]
  135.    set p [expr $p-1]
  136. }
  137.  
  138.  
  139. (c)
  140.  
  141. set {$p>0} {
  142.     set result [expr $result*$base]
  143.     set p [expr $p-1]
  144. }
  145.  
  146.  
  147. Example 8:
  148.  
  149. #!/usr/local/bin/wish -f
  150. proc power {base p} {
  151.    set result 1
  152.    while {$p>0} {
  153.           set result [expr $result*$base]
  154.           set p [expr $p-1]
  155.    }
  156.    return $result
  157. }
  158. entry .base -width 6 -relief sunken -textvariable base
  159. label .label1 -text "to the power"
  160. entry .power -width 6 -relief sunken -textvariable power
  161.  
  162. label .label2 -text "is"
  163. label .result -textvariable result
  164. pack .base .label1 .power .label2 .result -side left \
  165.    -padx 1m -pady 2m
  166. bind .base <Return> {set result [power $base $power]}
  167.  
  168.  
  169. Example 9: 
  170.  
  171. (a)
  172. Enter:            exec grep #include tk.h
  173. Returned value:   #include <tcl.h>
  174.                   #include <X11/Xlib.h>
  175.                   #include <stddef.h>
  176.  
  177.  
  178. (b)
  179.  
  180. #!/usr/local/bin/wish -f
  181. set id 0
  182. entry .entry -width 30 -relief sunken -textvariable cmd
  183. pack .entry -padx 1m -pady 1m
  184. bind .entry <Return> {
  185.    set id [expr $id + 1]
  186.    if {$id > 5} {
  187.         destroy .b[expr $id - 5]
  188.    }
  189.    button .b$id -command "exec <@stdin >@stdout $cmd" \
  190.         -text $cmd
  191.    pack .b$id -fill x
  192.    .b$id invoke
  193.    .entry delete 0 end
  194. }
  195.  
  196.  
  197. Example 10:
  198.  
  199. (a)
  200.  .entry configure -background yellow
  201.  
  202.  
  203. (b)
  204.   .b1 configure -foreground brown 
  205.   .b1 flash>
  206.  
  207.  
  208.  
  209.